package net.lzzy.practices.entities;

import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Transient;
import javax.persistence.OneToMany;

/**
 * @author lzzy_cyp
 */
@Entity
@Getter
@Setter
public class Question extends BaseEntity{
    @Transient
    public static final int TYPE_SINGLE=0;
    @Transient
    public static final int TYPE_JUDGE=1;
    @Transient
    public static final int TYPE_MULTI=2;
    private int type;
    private String content;
    private String analysis;
    private int ordinal;
    @OneToMany(cascade = CascadeType.PERSIST, mappedBy = "question")
    private List<Option> options =new ArrayList<>();
    @ManyToOne
    private Chapter chapter;
    @OneToMany (mappedBy = "question")
    private List<Result> results=new ArrayList<>();

    public Question(){

    }

    @JsonManagedReference
    public List<Option> getOptions() {
        return options;
    }

    @JsonBackReference
    public Chapter getChapter() {
        return chapter;
    }

    @JsonManagedReference
    public List<Result> getResults() {
        return results;
    }

}
